package br.curso.senac.entity;

import java.io.Serializable;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;


@Entity
@Table(name="item")
public class Item implements Serializable {

	private static final long serialVersionUID = 8575957211153651286L;

	@Id
	@Column(name="id")
	@SequenceGenerator(name = "item", sequenceName = "Item_id_seq")	
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="item")	
	private Integer id;
	
	@Column(name="quantidade")
	private Integer quantidade;
	
	@OneToMany(mappedBy = "item", fetch=FetchType.LAZY)	
	private List<NotaFiscal> notasFiscais;
	
	@ManyToOne
	@JoinColumn(name="idProduto")
	private Produto produto;
		
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Integer getQuantidade() {
		return quantidade;
	}

	public void setQuantidade(Integer quantidade) {
		this.quantidade = quantidade;
	}

	public List<NotaFiscal> getNotasFiscais() {
		return notasFiscais;
	}

	public void setNotasFiscais(List<NotaFiscal> notasFiscais) {
		this.notasFiscais = notasFiscais;
	}

	public Produto getProduto() {
		return produto;
	}

	public void setProduto(Produto produto) {
		this.produto = produto;
	}

	public Item(){
		produto = new Produto();
	}
	

}
